A large selection of portable devices designed to connect to a computer or other host device are currently available to consumers. Examples of such portable devices include music players, digital cameras, video cameras, digital recorders, and so forth. In order to make these devices more user-friendly, “plug and play” technologies have been developed that allow the user to simply plug the portable device into the computer, in response to which the computer automatically detects the presence of the portable device and loads any software necessary for communicating with the device. From the point of view of the user, all he or she has to do is connect the portable device to the computer and the portable device automatically works with the computer. Portable devices and computers supporting the USB (Universal Serial Bus) specification are examples of using plug and play technology.
In order to implement such plug and play technology, the computer typically has an operating system that is configured to detect the type of a particular portable device that is connected to the computer. Once detected, the computer operating system can determine the correct software, oftentimes referred to as a “driver”, to load in order to communicate with the portable device. This driver and the portable device both support a particular protocol that allows the two to communicate with one another. The protocol describes, for example, what commands can be sent to one another, as well as the structure for such commands. This driver allows the computer operating system to access functionality exposed by the portable device.
Although a large number of portable devices are currently commercially available, new versions and generations of portable devices are constantly being developed and released, and oftentimes these new versions or generations will include new features or operations. Similarly, new versions and generations of computer operating systems are also constantly being developed and released, and oftentimes these new versions or generations will include new features or operations. Unfortunately, the development and release cycles for portable devices and computer operating systems do not always coincide with one another. Thus, situations can arise where a new portable device is released that supports new features through a new protocol, but some operating systems do not yet include a driver to support this new feature or new protocol. This is oftentimes the case when a new portable device including new features and a new protocol is released, but many computers are still running older operating systems that do not yet have installed a driver to support the new features or the new protocol, or are incompatible with the new features.
Additionally, oftentimes if the new portable device includes the new features and the new protocol, when the portable device is connected to a computer that does not yet have installed a driver to support the new features or the new protocol, the operating system displays a warning message or error message to the user. Such a situation can be troublesome for many users, as they frequently do not know how to respond to the message. Furthermore, this situation detracts from a positive user experience because it is typically a manual input that the user must make to remove the warning or error message, and the user is left with a feeling that an error or problem exists when using the portable device with the computer.
One solution to these problems is to build a portable device that supports multiple protocols, one for the older operating system and one for the newer operating system, and then allow the user to manually configure the portable device in order to select which protocol the portable device should use. Such manual configuration can be performed, for example, through a user interface menu exposed by the portable device. However, such a solution is rather user-unfriendly because it requires the user to manually select the protocol, as well as have the appropriate knowledge to know which protocol is the correct protocol to select.
Another solution to these problems is to have the user install on the computer the appropriate driver and/or other software to support the new features when the portable device is first connected to the computer. However, such a solution is also user-unfriendly because it requires the user to make the appropriate driver and/or other software available to the computer. This can involve, for example, the user carrying a disc with the driver and/or other software along with the portable device, which detracts from the portable nature of the device.